//import java.util.HashMap;
////寻找和为k的子数组
////利用前缀和和哈希表
//
////在【0，i-1】之间找和为dp[i]-k的个数
//class Solution {
//    public int subarraySum(int[] nums, int k) {
//        HashMap<Integer,Integer> hash=new HashMap<>();
//        hash.put(0,1);//边界处理
//        int n=nums.length;
//        int[] dp=new int[n];
//        dp[0]=nums[0];
//        int ret=0;
//        for(int i=1;i<n;i++) dp[i]=dp[i-1]+nums[i];//0~i的和
//        for(int i=0;i<n;i++){
//            //在当前位置之前找有多少个==dp[i]-k
//            int target=dp[i]-k;
//            ret+=hash.getOrDefault(target,0);
//            hash.put(dp[i],hash.getOrDefault(dp[i],0)+1);
//        }
//        return ret;
//    }
//}
